package com.kcwx.common.core.page;

import cn.hutool.http.HttpStatus;
import com.github.pagehelper.PageInfo;

import java.io.Serializable;
import java.util.List;

import lombok.Data;

/**
 * 表格分页数据对象
 * 
 */
@Data
public class TableDataInfo<T> implements Serializable
{
    private static final long serialVersionUID = 1L;

    /** 列表数据 */
    private List<T> rows;

//    /** 消息状态码 */
//    private int code;
//
//    /** 消息内容 */
//    private String message;
//
//    private boolean success;
//
//    private long timestamp;

    private int pageNo;

    private int pageSize;

    /** 总记录数 */
    private long total;

    /**
     * 表格数据对象
     */
    public TableDataInfo()
    {
        //this.timestamp = System.currentTimeMillis();
    }

    /**
     * 分页
     * 
     * @param list 列表数据
     * @param total 总记录数
     */
    public TableDataInfo(List<T> list, int total)
    {
        this.rows = list;
        this.total = total;
    }

    public static <T> TableDataInfo<T> build(List<T> list) {
        TableDataInfo<T> rspData = new TableDataInfo<>();
        PageInfo<T> pageInfo = new PageInfo<>(list);
//        rspData.setCode(HttpStatus.HTTP_OK);
//        rspData.setMessage("查询成功");
        rspData.setRows(list);
        rspData.setTotal(pageInfo.getTotal());
        rspData.setPageNo(pageInfo.getPageNum());
        rspData.setPageSize(pageInfo.getPageSize());
        return rspData;
    }


}
